//对axios进行二次封装
import axios from 'axios'

//实例化axios实例对象
var service = axios.create({
    baseURL: process.env.REACT_APP_BASE_URL, //基准路径, 公共前缀, 
    //如果同时配置了.env.development 和 .env.production , 
    //在开发环境下 baseURL 会替换为 '/api' , 
    //在生产环境下 baseURL 会替换为 http://cdf.yantianfeng.com/
    timeout: 10000 //超时时间
})

//设置请求拦截器
service.interceptors.request.use((config)=>{
    //设置请求头
    config.headers['Authorization'] = localStorage.getItem('token');
    //设置第二个请求头
    //config.headers['X-token'] = localStorage.getItem('token');
    
    return config;
},(error)=>{
    return Promise.reject(error)
})

//设置响应拦截器
service.interceptors.response.use((res)=>{

    return res;
},(error)=>{
    //处理错误状态码
    if( error.response.status == 401 ){
        alert('登陆过期,请重新登陆');
        //跳转到登录页
        //删除过期的token
    }
    else if( error.response.status == 404  ){
        alert('资源路径有误');
    }
    else if( error.response.status == 500 ){
        alert('服务器内部错误!')
    }

    return Promise.reject(error)
})

export default service;